package com.eportal.controller.background;

import com.eportal.domain.Sysopt;
import com.eportal.service.SysOptService;
import com.framework.SpringContextHolder;
import org.springframework.mock.web.MockHttpSession;

import java.util.List;

/**
 * Created by Saber on 2017/7/11.
 */
public class BaseController {

    /**
     * 设置session
     * @Author Saber
     * @Date 2017/7/12 上午10:01
     * @param userName  用户名/手机号
     * @return session
     */
    public static MockHttpSession getSession(String userName){

        MockHttpSession session = new MockHttpSession();

        Long sId = 961L;//大帝
        String agtCode = "1720";
        Integer rLevel = 1;

        Sysopt user;

        SysOptService userService = SpringContextHolder.getBean(SysOptService.class);
        user = userService.getByUserName(userName).get(0);

        int userRole=0;
        if("-1".equals(user.getIsAdmin())){
            userRole=1;
        }
        if("0".equals(user.getIsAdmin())){
            if(user.getrLevel()==0){
                userRole=2;
            }
            //区域主管
            if(user.getrLevel()==5){
                userRole=21;
            }
            //合作方普通管理员
            if(user.getrLevel()==1 || user.getrLevel()==3){ //物业公司 锁厂
                userRole=4;
            }
            //社区普通管理员
            if(user.getrLevel()==2 || user.getrLevel()==4){
                userRole=6;
            }
        }

        if("1".equals(user.getIsAdmin())){
            //合作方超级管理员
            if(user.getrLevel()==1 || user.getrLevel()==3){ //物业 锁厂
                userRole=3;//Created by Saber on 2017/8/8 下午2:38
            }
            //社区超级管理员
            if(user.getrLevel()==2 || user.getrLevel()==4){
                userRole=5;//Created by Saber on 2017/8/8 下午2:38
            }
        }

        //主板厂商 todo  Created by Saber on 2017/7/25 下午4:04
        if(user.getrLevel()==6){
            userRole=7;//Created by Saber on 2017/8/8 下午2:38
        }


        session.setAttribute("user",user);
        session.setAttribute("userRole",userRole);

        return session;
    }

    /**
     * 获取用户信息
     * @author Saber
     * @Date 2017/7/25 下午1:50
     * @param userName  用户名
     * @return sysopt
     */
    public static Sysopt getSysopt(String userName){
        Sysopt user;

        SysOptService userService = SpringContextHolder.getBean(SysOptService.class);
        List<Sysopt> list = userService.getByUserName(userName);
        if(list.size()>0){
            user = list.get(0);
            return user;
        }
        return null;
    }

    /**
     * 获取用户信息
     * @author Saber
     * @Date 2017/7/25 下午1:50
     * @param userName  用户名
     * @return sysopt
     */
    public static int getUserRole(String userName){
        Sysopt user = null;

        SysOptService userService = SpringContextHolder.getBean(SysOptService.class);
        List<Sysopt> list = userService.getByUserName(userName);
        if(list.size()>0){
            user = list.get(0);
        }
        if("-1".equals(user.getIsAdmin())){
            return 1;//平台超级管理员
        }
        if("0".equals(user.getIsAdmin())){
            if(user.getrLevel()==0){
                return 2;//平台普通管理员
            }
            //区域主管
            if(user.getrLevel()==5){
                return 21;
            }
            //合作方普通管理员
            if(user.getrLevel()==1 || user.getrLevel()==3){ //物业公司 锁厂
                return 4;
            }
            //社区普通管理员
            if(user.getrLevel()==2 || user.getrLevel()==4){
                return  6;
            }
        }

        if("1".equals(user.getIsAdmin())){
            //合作方超级管理员
            if(user.getrLevel()==1 || user.getrLevel()==3){ //物业 锁厂
                return 3;
            }
            //社区超级管理员
            if(user.getrLevel()==2 || user.getrLevel()==4){
                return 5;
            }
        }

        //主板厂商 todo  Created by Saber on 2017/7/25 下午4:04
        if(user.getrLevel()==6){
            return 7;
        }

        return 1; //默认返回 1 最高权限
    }

}
